package com.soulless.generic;

/**
 * <p>
 * 泛型类
 * </p>
 *
 * @param <T> 这里解释下<T>中的T:
 *           此处的T可以随便写为任意标识，常见的有T、E等形式的参数表示泛型
 *           泛型在定义的时候不具体，使用的时候才变得具体。
 *           在使用的时候确定泛型的具体数据类型。即在创建对象的时候确定泛型。
 * @author zenglei
 * @date 2022/04/21/ 14:25
 */
public class GenericClassDemo<T> {

    /**
     * t这个成员变量的类型为T,T的类型由外部指定
     */
    private T t;

    /**
     * 泛型构造方法形参t的类型也为T，T的类型由外部指定
     * @param t
     */
    public GenericClassDemo(T t) {
        this.t = t;
    }

    /**
     * 泛型方法getT的返回值类型为T，T的类型由外部指定
     * @return
     */
    public T getT() {
        return t;
    }

}
